package cn.xy.base.server.service;

import cn.xy.base.server.po.SysConfig;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rustic.server.bean.WeixinConfig;

/**
 * 表[sys_config]对应的服务类
 *
 * @author auto
 */

public interface SysConfigService extends IService<SysConfig> {

    /**
     * 字符串配置
     */
    String STR = "strConfig";

    /**
     * 公众号配置
     */
    String weixinOfficeConfigKey = "weixinOfficeConfig";

    /**
     * 小程序配置
     */
    String miniprogramConfigKey = "miniprogramConfig";

    /**
     * 获取key对应的Class类型
     *
     * @param key key
     * @return Class
     */
    Class<?> getClass(String key);

    /**
     * 获取配置
     *
     * @param key   key
     * @param clazz clazz
     * @param <T>   类型
     * @return 配置信息
     */
    <T> T getConfig(String key, Class<T> clazz);

    /**
     * 保存配置
     *
     * @param key   key
     * @param value value
     * @param <T>   类型
     */
    <T> void saveConfig(String key, T value);

    /**
     * 获取微信配置
     *
     * @param key key
     * @return WeixinConfig
     */
    WeixinConfig getWeixinConfig(String key);

}
